var backendCommon = {
	picRommDomain : 'http://d1.ailkcloud.com/',
	toProdDetail : function(pminfoId, publishLocation) {
		// window.open('http://item.ailkcloud.com/'+pminfoId+'.html');
		if (typeof publishLocation == "undefined" || publishLocation == null
				|| publishLocation == 1) {
			window.open('http://115.29.209.108:8081/' + pminfoId + '.html');
		} else {
			window.open('http://115.29.208.79:8085/' + pminfoId + '.html');
		}
	},
	getViewCenterYPosition : function(px) {
		var sTop = 0;
		var ppx = 160;
		// 页面在iframe内面打开
		if (typeof (px) != "undefined" && !isNaN(px)) {
			ppx = px;
		}
		if ($("#layoutCenter").length > 0) {
			var top = ($("#indexLayout").height() - ppx) / 2;
			var mainScrollTop = $("#indexLayout").scrollTop();
			sTop = mainScrollTop + top;
		} else {// 页面在iframe外面打开
			var top = ($(window).height() - ppx) / 2;
			var mainScrollTop = $(document).scrollTop();
			sTop = mainScrollTop + top;
		}
		if (sTop < 5) {
			sTop = 5;
		}
		return parseInt(sTop);
	},
	getWidth : function(percent) {
		if ($("#layoutCenter").length > 0) {
			return $("#layoutCenter").panel("options").width * percent;
		} else {
			return document.body.clientWidth * percent;
		}
	},
	getHeight : function(percent) {
		if ($("#layoutCenter").length > 0) {
			return $("#layoutCenter").panel("options").height * percent;
		} else {
			return document.documentElement.clientHeight * percent;
		}
	},
	// 打开easyui window
	openeWin : function(id, offsetTop) {
		if (offsetTop && $.isNumeric(offsetTop)) {
			var top = this.getViewCenterYPosition(offsetTop);
			$("#" + id).window('move', {
				top : top
			}).window('open');
		} else {
			$("#" + id).window('open');
		}
		var h = $(window).height() ;
		$('.window-mask').css('height', h);
	},
	// 关闭 easyui window
	closeWin : function(id) {
		$("#" + id).window('close');
	},
	creatShadow : function(content) {
		var ct = content;
		if (!content || $.trim(content.length) == 0) {
			ct = "正在处理，请稍候！";
		}
		var ph = this.getHeight(1);
		ph = ph < 800 ? 800 : ph;
		$("<div id=\"easyUiShadow\" class=\"window-mask\"></div>").css({
			position : "absolute",
			display : "block",
			width : "100%",
			height : ph
		}).css('z-index', '9998').appendTo("body");
		var top = this.getViewCenterYPosition();
		$("<div id=\"easyUiShadowMsg\" class=\"datagrid-mask-msg\"></div>")
				.html(ct).appendTo("body").css({
					position : "absolute",
					display : "block",
					left : ($(document.body).outerWidth(true) - 190) / 2,
					top : top
				}).css('z-index', '9999');
	},
	// 移除easyui遮罩遮罩
	removeShadow : function() {
		$("#easyUiShadow,#easyUiShadowMsg").remove();
	},
	dateTimeToLocalStringDays : function(dateTime) {
		if (dateTime == null) {
			return "";
		}
		var date = new Date(dateTime);
		Y = date.getFullYear();
		M = (date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : (date
				.getMonth() + 1);
		D = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate();
		return Y + '-' + M + '-' + D;
	},
	dateTimeToLocalString : function(dateTime) {
		if (dateTime == null) {
			return "";
		}
		var date = new Date(dateTime);
		Y = date.getFullYear();
		M = (date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : (date
				.getMonth() + 1);
		D = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate();
		var hh = date.getHours() < 10 ? ("0" + date.getHours()) : date
				.getHours();
		var mm = date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date
				.getMinutes();
		return Y + '-' + M + '-' + D + ' ' + hh + ':' + mm;
	},
	dateTimeToLocalStringWithSeconds : function(dateTime) {
		if (dateTime == null) {
			return "";
		}
		var date = new Date(dateTime);
		Y = date.getFullYear();
		M = (date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : (date
				.getMonth() + 1);
		D = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate();
		var hh = date.getHours() < 10 ? ("0" + date.getHours()) : date
				.getHours();
		var mm = date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date
				.getMinutes();
		var ss = date.getSeconds() < 10 ? ("0" + date.getSeconds()) : date
				.getSeconds();
		return Y + '-' + M + '-' + D + ' ' + hh + ':' + mm + ':' + ss;
	},
	// 重置表单内容 （不适应请自己扩展）
	formReset : function(formId) {
		$('input,select,textarea', '#' + formId)
				.not(':button,:submit,:reset')
				.each(
						function() {
							var t = this.type, tag = this.tagName.toLowerCase();
							if (t == 'text' || t == 'password'
									|| tag == 'textarea') {
								if ($(this).attr('default')) {
									this.value = $(this).attr('default');
								} else {
									this.value = '';
								}
							} else if (t == 'file') {
								var file = $(this);
								file.after(file.clone().val(''));
								file.remove();
							} else if (t == 'checkbox' || t == 'radio') {
								if ($(this).attr('default')) {
									this.checked = true;
								} else {
									this.checked = false;
								}
							} else if (tag == 'select') {
								var defaultOpt = $(this).find(
										'option[default="true"]');
								if (defaultOpt.length > 0) {
									$(this).val(defaultOpt.val());
								} else {
									this.selectedIndex = 0;
								}
							}
						});
	},
	str2DateTime : function(str) {
		str = str.replace("-", "/").replace("-", "/");
		return Date.parse(str);
	},
	// 计算日期时间差多少天
	dateDiff : function(strDate1, strDate2) {
		strDate1 = strDate1.replace("-", "/").replace("-", "/");
		strDate2 = strDate2.replace("-", "/").replace("-", "/");
		var date1 = Date.parse(strDate1);
		var date2 = Date.parse(strDate2);
		return (date2 - date1) / (60 * 60 * 1000 * 24);
	},
	// 正则校验是否是数字
	regIsNum : function(str) {
		var reg = new RegExp("^[0-9]*$");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	// 正则校验是否是中文/[\u4E00-\u9FA5]/
	regIsChinese : function(str) {
		var reg = new RegExp("^[\u4E00-\u9FA5]+$");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	// 正则校验是否是汉字 字母 数字 组合 ()-.+/*_
	regIsText : function(str) {
		var reg = new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\.\+\/\*\\s\-_\(\)]+$");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	openInFrame : function(url) {
		if (url.length == 0) {
			return;
		}
		$("#layoutCenter").panel('refresh', url);
	},
	// 正则校验是否是汉字 字母 数字 标点 组合
	regIsRichText : function(str) {
		var reg = new RegExp(
				"^[a-zA-Z0-9_\u4e00-\u9fa5]|[，。？：；‘’！“”—……、]|(－{2})|(（）)|(【】)|({})|(《》)+$");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	openInTabs : function(url, menueName) {
		var $leftMenu = $("#leftMenu", parent.document);
		if ($leftMenu.length > 0) {
			var $li = $('<h2 menueName="' + menueName + '" uri="' + url
					+ '" style="display:none;"></h2>');
			$li.appendTo($leftMenu).trigger('click').remove();
		} else {
			window.open(url, "_blank");
		}
	},
	
	refreshCenter : function(url,menueName){
		var tab=$('#indexTab').tabs('getTab',menueName);
		var  content = '<iframe frameborder="0"  src="'+url+'" style="width:100%;height:100%;"></iframe>'; 
		if(tab){
			$('#indexTab').tabs('select',menueName);
			$('#indexTab').tabs('update', {
				tab: tab,
				options: {
					content:content
				}
			});
		}else{
			$('#indexTab').tabs('add',{    
			    title:menueName,    
			    content:content,    
			    closable:true,
			    tools:[{
					iconCls:'icon-reload',
					handler:function(){
						refreshCenter(url,menueName);
					}
				}]
			});
		}
	},
	
	closeInTabs : function(tabName) {
		var $leftMenu = $("#leftMenu", parent.document);
		if ($leftMenu.length > 0) {
			var $li = $('<h3 tabName="' + tabName + '" style="display:none;"></h3>');
			$li.appendTo($leftMenu).trigger('click').remove();
		}else{
			window.close();
		}
		
	},
	// 去掉html标签
	removeHTMLTag : function(str) {
		if (str == null && str == "") {
			return "";
		}
		str = str.replace(/<\/?[^>]*>/g, ''); // 去除HTML tag
		str = str.replace(/[ | ]*\n/g, '\n'); // 去除行尾空白
		str = str.replace(/\n[\s| | ]*\r/g, '\n'); // 去除多余空行
		str = str.replace(/&nbsp;/ig, '');// 去掉&nbsp;
		str = str.replace(/\\/g, "");
		str = str.replace(/</g, "");
		return str;
	},
	// 是否为手机号
	regIsMobileNumber : function(str) {
		var reg = new RegExp("(13[0|1|2]|15[5|6]|18[5|6])\\d{8}");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	regIsMobile : function(str) {
		var reg = new RegExp("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	},
	// 是否包含特殊字符
	regIsSpecial : function(str) {
		var reg = new RegExp(
				"[`~!@#$^&*%()-.+*_=|{}':;',\\[\\].<>/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？]");
		if (!reg.test(str)) {
			return false;
		} else {
			return true;
		}
	}
};
// //easyui 校验
$(function() {
	$('.easyui-numberbox,.easyui-validatebox').removeClass(
			'validatebox-invalid');
});

// 除法函数，用来得到精确的除法结果
// 说明：javascript的除法结果会有误差，在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
// 调用：accDiv(arg1,arg2)
// 返回值：arg1除以arg2的精确结果
function accDiv(arg1, arg2) {
	var t1 = 0, t2 = 0, r1, r2;
	try {
		t1 = arg1.toString().split(".")[1].length
	} catch (e) {
	}
	try {
		t2 = arg2.toString().split(".")[1].length
	} catch (e) {
	}
	with (Math) {
		r1 = Number(arg1.toString().replace(".", ""))
		r2 = Number(arg2.toString().replace(".", ""))
		return (r1 / r2) * pow(10, t2 - t1);
	}
}
// 给Number类型增加一个div方法，调用起来更加方便。
Number.prototype.div = function(arg) {
	return accDiv(this, arg);
}

// 乘法函数，用来得到精确的乘法结果
// 说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
// 调用：accMul(arg1,arg2)
// 返回值：arg1乘以arg2的精确结果

function accMul(arg1, arg2) {
	var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
	try {
		m += s1.split(".")[1].length
	} catch (e) {
	}
	try {
		m += s2.split(".")[1].length
	} catch (e) {
	}
	return Number(s1.replace(".", "")) * Number(s2.replace(".", ""))
			/ Math.pow(10, m)
}
// 给Number类型增加一个mul方法，调用起来更加方便。
Number.prototype.mul = function(arg) {
	return accMul(arg, this);
}

// 加法函数，用来得到精确的加法结果
// 说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
// 调用：accAdd(arg1,arg2)
// 返回值：arg1加上arg2的精确结果
function accAdd(arg1, arg2) {
	var r1, r2, m;
	try {
		r1 = arg1.toString().split(".")[1].length
	} catch (e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length
	} catch (e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2))
	return (arg1 * m + arg2 * m) / m
}
// 给Number类型增加一个add方法，调用起来更加方便。
Number.prototype.add = function(arg) {
	return accAdd(arg, this);
}

// 减法函数
function accSub(arg1, arg2) {
	var r1, r2, m, n;
	try {
		r1 = arg1.toString().split(".")[1].length
	} catch (e) {
		r1 = 0
	}
	try {
		r2 = arg2.toString().split(".")[1].length
	} catch (e) {
		r2 = 0
	}
	m = Math.pow(10, Math.max(r1, r2));
	// last modify by deeka
	// 动态控制精度长度
	n = (r1 >= r2) ? r1 : r2;
	return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
// 给Number类型增加一个sub方法，调用起来更加方便。
Number.prototype.sub = function(arg) {
	return accSub(this, arg);
}

/* js中却没有这3个内置方法，需要手工编写扩展 */
String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim = function() {
	return this.replace(/(^\s*)/g, "");
}
String.prototype.rtrim = function() {
	return this.replace(/(\s*$)/g, "");
}

function winClose() {
	window.close();
}
